home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / toolbar / databar / winfuncs.ba_ / winfuncs.ba
Text File  |  1995-03-16  |  2KB  |  68 lines

  1. '
  2. ' Copyright ⌐ 1994-1995, Proficient Solutions Inc.
  3. '
  4. '  Project:     PSIDataBar Sample Application
  5. '  Author :     mj
  6. '  Date   :     15 March 1995
  7. '
  8. '  File   :     WinStuff.Bas
  9. '  Purpose:     Contains useful Windows utilities
  10. '
  11. '
  12. '  Programmer's Notes:
  13. '
  14. '
  15. Option Explicit
  16.  
  17. ' Useful Windows messages
  18. Declare Function SendMessage Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long
  19. Declare Function SetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long
  20. Declare Function GetWindowLong Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer) As Long
  21. Declare Function SetWindowWord Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal wNewWord As Integer) As Integer
  22.  
  23. ' Things the Window's API really wants (not those weird VB versions)
  24. Global Const WINAPI_TRUE = 1
  25. Global Const WINAPI_FALSE = 0
  26.  
  27. Global Const WM_USER = &H400
  28. Global Const EM_SETREADONLY = (WM_USER + 31)
  29.  
  30. '
  31. ' Centers window in its parent
  32. '
  33. Sub CenterWindow (Parent As Form, Child As Form)
  34.     Dim newTop As Integer
  35.     Dim newLeft As Integer
  36.  
  37.     newTop = (Abs(Parent.Height - Child.Height) / 2) + Parent.Top
  38.     newLeft = (Abs(Parent.Width - Child.Width) / 2) + Parent.Left
  39.  
  40.     Child.Move newLeft, newTop
  41. End Sub
  42.  
  43. '
  44. ' Changes a TextEdit control to read-only and
  45. ' makes the background grey a'la Windows 95
  46. '
  47. Sub SetEditReadOnly (Ctl As Control)
  48.     Dim result As Long
  49.  
  50.     result = SendMessage(Ctl.hWnd, EM_SETREADONLY, WINAPI_TRUE, 0&)
  51.  
  52.     ' set the back ground to medium gray
  53.     Ctl.BackColor = &HC0C0C0
  54. End Sub
  55.  
  56. '
  57. ' Changes a TextBox to white and editable
  58. '
  59. Sub SetEditReadWrite (Ctl As Control)
  60.     Dim result As Long
  61.  
  62.     result = SendMessage(Ctl.hWnd, EM_SETREADONLY, WINAPI_FALSE, 0&)
  63.  
  64.     ' set the background to white
  65.     Ctl.BackColor = &H80000005
  66. End Sub
  67.  
  68.